ASP.NET Core-এ Routing হলো একটি গুরুত্বপূর্ণ প্রক্রিয়া, যার মাধ্যমে HTTP রিকোয়েস্টের উপর ভিত্তি করে কন্ট্রোলার এবং অ্যাকশন নির্বাচন করা হয়। এটি ইউজার রিকোয়েস্টকে সঠিক কন্ট্রোলার ও অ্যাকশন মেথডের সাথে সংযুক্ত করতে সাহায্য করে। Routing আপনাকে একটি URL প্যাটার্নের ভিত্তিতে রিকোয়েস্ট ম্যানেজ করার সুযোগ দেয়, যা ওয়েব অ্যাপ্লিকেশনের নির্দিষ্ট কার্যকলাপের সাথে সম্পর্কিত।
ASP.NET Core-এ Routing এর মাধ্যমে ইউজাররা সহজে নির্দিষ্ট অ্যাকশন, কন্ট্রোলার বা পেজে প্রবেশ করতে পারে URL-এর মাধ্যমে। Routing এক ধরণের নেভিগেশন সিস্টেম, যা নির্ধারণ করে কোন কন্ট্রোলার বা মেথডে রিকোয়েস্ট যাবে।
ASP.NET Core-এ Routing সাধারণত URL প্যাটার্নের সাথে মিল রেখে কন্ট্রোলার এবং অ্যাকশন সিলেক্ট করে। সাধারণত নিম্নলিখিত পদক্ষেপগুলোর মাধ্যমে কাজ করে:
ASP.NET Core-এ Routing দুই ধরনের হয়ে থাকে:
এটি হল ডিফল্ট routing সিস্টেম যা URL প্যাটার্নের ওপর ভিত্তি করে controller এবং action নির্বাচন করে। সাধারণত Startup.cs
ফাইলে এটি কনফিগার করা হয়।
উদাহরণ:
public void Configure(IApplicationBuilder app)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
এই কনফিগারেশনে:
{controller=Home}
: যদি কোনো controller নির্ধারণ না করা হয়, তাহলে Home
কন্ট্রোলার ব্যবহার হবে।{action=Index}
: যদি কোনো action নির্ধারণ না করা হয়, তাহলে Index
action চলবে।{id?}
: id
প্যারামিটারটি ঐচ্ছিক।URL এর উদাহরণ:
https://yourdomain/Home/Index
→ Home কন্ট্রোলারের Index অ্যাকশনকে কল করবে।https://yourdomain/Home/About
→ Home কন্ট্রোলারের About অ্যাকশনকে কল করবে।https://yourdomain/Products/Details/5
→ Products কন্ট্রোলারের Details অ্যাকশন, এবং 5
ID প্যারামিটারটি পাঠাবে।এট্রিবিউট Routing ব্যবহার করে প্রতিটি কন্ট্রোলার এবং অ্যাকশনের উপর সরাসরি URL প্যাটার্ন নির্ধারণ করা যায়। এটি একটি ফлексিবল এবং ডাইনামিক পদ্ধতি, যেখানে প্রতিটি কন্ট্রোলার ও অ্যাকশনের উপরে Route
এট্রিবিউট দেয়া হয়।
উদাহরণ:
[Route("products")]
public class ProductsController : Controller
{
[Route("{id}")]
public IActionResult Details(int id)
{
// Product details logic
return View();
}
[Route("create")]
public IActionResult Create()
{
// Create product logic
return View();
}
}
এখানে:
/products/5
→ ProductsController-এর Details অ্যাকশন, যেখানে id=5
প্যারামিটার পাঠানো হবে।/products/create
→ ProductsController-এর Create অ্যাকশন কল করবে।এট্রিবিউট Routing-এর সাথে প্যারামিটার ব্যবহার করা যেতে পারে যাতে URL প্যাটার্নে ডাইনামিক ভ্যালু পাঠানো যায়।
উদাহরণ:
[Route("order/{orderId}")]
public IActionResult OrderDetails(int orderId)
{
// Fetch order details using orderId
return View();
}
এই কনফিগারেশনে, URL যেমন /order/123
ব্যবহার করলে OrderDetails
অ্যাকশন কল হবে এবং orderId
প্যারামিটার হিসেবে 123
পাঠানো হবে।
ASP.NET Core Routing আপনাকে route প্যাটার্নে কনস্ট্রেইন্ট (যেমন: একটি প্যারামিটারটি সঠিক ধরনের হতে হবে) নির্ধারণ করার সুযোগ দেয়।
উদাহরণ:
[Route("products/{id:int}")]
public IActionResult GetProduct(int id)
{
// Only integer values for id will match
return View();
}
এখানে id:int
কনস্ট্রেইন্ট নির্ধারণ করেছে যে id
একটি পূর্ণসংখ্যা হতে হবে।
Routing প্যাটার্নে আপনি ডিফল্ট ভ্যালু দিতে পারেন, যা ইউজার যদি কোনো প্যারামিটার না পাঠায় তবে সেগুলো ব্যবহার হবে।
উদাহরণ:
[Route("products/{id?}")]
public IActionResult ShowProduct(int? id = 1)
{
// Default id = 1 if no id is provided
return View();
}
Route Prefix ব্যবহার করে একটি নির্দিষ্ট কন্ট্রোলারের সব অ্যাকশনের জন্য সাধারণ একটি URL প্যাটার্ন নির্ধারণ করা যেতে পারে।
উদাহরণ:
[Route("admin/[controller]")]
public class ProductsController : Controller
{
[Route("list")]
public IActionResult List()
{
return View();
}
[Route("details/{id}")]
public IActionResult Details(int id)
{
return View();
}
}
এখানে admin/products/list
বা admin/products/details/1
এই ধরনের URL ব্যবহার করা যাবে।
ASP.NET Core-এ Routing একটি অত্যন্ত গুরুত্বপূর্ণ উপাদান যা অ্যাপ্লিকেশন নেভিগেশন ও কন্ট্রোলারের কার্যকলাপ নির্ধারণে সহায়ক। এর মাধ্যমে URL প্যাটার্ন, কনস্ট্রেইন্ট, এবং প্যারামিটার ব্যবহারের মাধ্যমে আরও কার্যকরী, ফ্লেক্সিবল এবং শক্তিশালী ওয়েব অ্যাপ্লিকেশন তৈরি করা সম্ভব।
common.read_more